<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>StrUtil</title>
</head>
<body>

<script src="../../../lib/baitu.min.js"></script>
<script>
    const {StrUtil} = Baitu;

    console.log("isBlank------------------")

    console.log(StrUtil.isBlank(""))
    console.log(StrUtil.isBlank(" "))
    console.log(StrUtil.isBlank(null))
    console.log(StrUtil.isBlank(undefined))
    console.log(StrUtil.isBlank("\n"))
    console.log(StrUtil.isBlank("\t"))
    console.log(StrUtil.isBlank("1"))

    console.log("isNotBlank------------------")

    console.log(StrUtil.isNotBlank(""))
    console.log(StrUtil.isNotBlank(" "))
    console.log(StrUtil.isNotBlank(null))
    console.log(StrUtil.isNotBlank(undefined))
    console.log(StrUtil.isNotBlank("\n"))
    console.log(StrUtil.isNotBlank("\t"))
    console.log(StrUtil.isNotBlank("1"))

    console.log("isEmpty------------------")

    console.log(StrUtil.isEmpty(""))
    console.log(StrUtil.isEmpty("\n"))
    console.log(StrUtil.isEmpty("\t"))
    console.log(StrUtil.isEmpty(null))
    console.log(StrUtil.isEmpty(undefined))
    console.log(StrUtil.isEmpty(" "))

    console.log("isNotEmpty------------------")

    console.log(StrUtil.isNotEmpty(""))
    console.log(StrUtil.isNotEmpty("\n"))
    console.log(StrUtil.isNotEmpty("\t"))
    console.log(StrUtil.isNotEmpty(null))
    console.log(StrUtil.isNotEmpty(undefined))
    console.log(StrUtil.isNotEmpty(" "))

    console.log("defaultIfNull------------------")

    console.log(StrUtil.defaultIfNull(null, "123"))
    console.log(StrUtil.defaultIfNull("", "123"))
    console.log(StrUtil.defaultIfNull("\n", "123"))
    console.log(StrUtil.defaultIfNull(undefined, "123"))

    console.log("defaultIfBlank------------------")

    console.log(StrUtil.defaultIfBlank("", "222"))
    console.log(StrUtil.defaultIfBlank(" ", "222"))
    console.log(StrUtil.defaultIfBlank("\n", "222"))
    console.log(StrUtil.defaultIfBlank("\t", "222"))
    console.log(StrUtil.defaultIfBlank(null, "222"))
    console.log(StrUtil.defaultIfBlank(undefined, "222"))
    console.log(StrUtil.defaultIfBlank("11", "222"))

    console.log("defaultIfEmpty------------------")

    console.log(StrUtil.defaultIfEmpty("", "222"))
    console.log(StrUtil.defaultIfEmpty(" ", "222"))
    console.log(StrUtil.defaultIfEmpty("\n", "222"))
    console.log(StrUtil.defaultIfEmpty("\t", "222"))
    console.log(StrUtil.defaultIfEmpty(null, "222"))
    console.log(StrUtil.defaultIfEmpty(undefined, "222"))
    console.log(StrUtil.defaultIfEmpty("11", "222"))

    console.log("isAnyBlank------------------")

    console.log(StrUtil.isAnyBlank("", "12", "2"))
    console.log(StrUtil.isAnyBlank("11", "12", "2"))
    console.log(StrUtil.isAnyBlank("11", "", "2"))
    console.log(StrUtil.isAnyBlank(""))

    console.log("isNoneBlank------------------")

    console.log(StrUtil.isNoneBlank("", "12", "2"))
    console.log(StrUtil.isNoneBlank("11", "12", "2"))
    console.log(StrUtil.isNoneBlank("11", "", "2"))
    console.log(StrUtil.isNoneBlank(""))
    console.log(StrUtil.isNoneBlank("1"))

    console.log("isAllBlank------------------")

    console.log(StrUtil.isAllBlank("", "12", "2"))
    console.log(StrUtil.isAllBlank("11", "12", "2"))
    console.log(StrUtil.isAllBlank("11", "", "2"))
    console.log(StrUtil.isAllBlank("", "", ""))
    console.log(StrUtil.isAllBlank(""))
    console.log(StrUtil.isAllBlank("1"))

    console.log("isAnyEmpty------------------")

    console.log(StrUtil.isAnyEmpty("", "12", "2"))
    console.log(StrUtil.isAnyEmpty("11", "12", "2"))
    console.log(StrUtil.isAnyEmpty("11", "", "2"))
    console.log(StrUtil.isAnyEmpty(""))

    console.log("isNoneEmpty------------------")

    console.log(StrUtil.isNoneEmpty("", "12", "2"))
    console.log(StrUtil.isNoneEmpty("11", "12", "2"))
    console.log(StrUtil.isNoneEmpty("11", "", "2"))
    console.log(StrUtil.isNoneEmpty(""))
    console.log(StrUtil.isNoneEmpty("1"))

    console.log("isAllEmpty------------------")

    console.log(StrUtil.isAllEmpty("", "12", "2"))
    console.log(StrUtil.isAllEmpty("11", "12", "2"))
    console.log(StrUtil.isAllEmpty("11", "", "2"))
    console.log(StrUtil.isAllEmpty("", "", ""))
    console.log(StrUtil.isAllEmpty(""))
    console.log(StrUtil.isAllEmpty("1"))

    console.log("padStart------------------")

    console.log(StrUtil.padStart("aaa", 5, "#"))
    console.log(StrUtil.padStart("aaa", 3, "#"))
    console.log(StrUtil.padStart("aaa", 5))
    console.log(StrUtil.padStart("aaa", 2))

    console.log("padEnd------------------")

    console.log(StrUtil.padEnd("aaa", 5, "#"))
    console.log(StrUtil.padEnd("aaa", 3, "#"))
    console.log(StrUtil.padEnd("aaa", 5))
    console.log(StrUtil.padEnd("aaa", 2))

    console.log("chunk------------------")

    console.log(StrUtil.chunk("dfjhdsfoijedf", 3))
    console.log(StrUtil.chunk("dfjhdsfoijedf", 14))

    console.log("chunkCount------------------")

    console.log(StrUtil.chunkCount("dfjhdsfoijedf", 3))
    console.log(StrUtil.chunkCount("dfjhdsfoijedf", 14))

    console.log("toKebab------------------")

    console.log(StrUtil.toKebab("marginBottom"))
    console.log(StrUtil.toKebab("marginBottom", "_"))
    console.log(StrUtil.toKebab("dfjhdsfoijedf"))

    console.log("toHump------------------")

    console.log(StrUtil.toHump("margin-bottom"))
    console.log(StrUtil.toHump("marginBottom", "B"))
    console.log(StrUtil.toHump("marginBottom"))
    console.log(StrUtil.toHump("dfjhdsfoijedf"))

    const spacer = ['-', '_'];
    console.log(new RegExp('[' + spacer.map(item => '\\' + item).join("|") + '](\\w)', 'g'))


    function toHump(str, ...spacer) {
        if (!spacer || spacer.length <= 0) {
            spacer = ['-', '_'];
        }
        return str.replace(new RegExp('[' + spacer.join("|") + '](\\w)', 'g'), (_, c) => c ? c.toUpperCase() : '');
    }
    console.log(toHump("margin-bottom"))
    console.log(toHump("marginBottom", "B"))
    console.log(toHump("marginBottom"))
    console.log(toHump("dfjhdsfoijedf"))

    let s = "Baitu {}，好用，真{}"
    console.log("format-------------------")
    console.log(StrUtil.format(s))
    console.log(StrUtil.format(s, "工具", "好用"))
    console.log(StrUtil.format(s, "工具", "好用", "啊啊啊"))
    console.log(StrUtil.format("苹果，香蕉，栗子", "工具", "好用", "啊啊啊"))
    console.log(s)

    console.log("formatMap--------------")

    const s2 = "苹果价格：{price}，有{num}个{num3}"
    console.log(StrUtil.formatMap(s2, {
        price: 5,
        num: 100
    }))
    console.log(StrUtil.formatMap(s2))
    console.log(s2)

    console.log("-------------getUnicode")
    console.log(StrUtil.getUnicode("asdadd😍"))


    console.log("-----------compare")
    console.log(StrUtil.compare("bbbb", "bbb"))

</script>
</body>
</html>
